<?php
include_once '../conexion.php';
$_SESSION['seccion'] = 'amstock_manual';
//----------------------------------------------------

class stock_manual {

    //uni_id uni_nombre uni_abreviado
    public $id;
    public $fecha;
    public $cantidad;
    public $comentario;
    public $deposito;
    public $producto;

    function __construct($id, $fecha, $cantidad, $comentario, $deposito, $producto) {
        $this->id = $id;
        $this->fecha = strToInsertInBD($fecha);
        $this->cantidad = $cantidad;
        $this->comentario = strToInsertInBD($comentario);
        $this->deposito = $deposito;
        $this->producto = $producto;
    }

}
?>
<?php //Acciones
$accion = isset($_GET["act"]) ? $_GET["act"] : '';
$REQUEST_ID_ = pg_escape_string(trim(isset($_REQUEST['ref_id']) ? $_REQUEST['ref_id'] : '0'));
$errsdiv = '';

function valida() {
    $errorMsg = array();
    $regex_id = '/^[0-9]{1,8}$/';

    if (!validaFecha(trim($_REQUEST["fecha"]))) {
        array_push($errorMsg, 'La fecha no es correcta.');
    }
    if (!is_numeric($_POST["cantidad"])) {
        array_push($errorMsg, 'El valor ingresado como cantidad no es numerico.');
    }
    if (strlen(trim($_POST["comentario"])) > 120) {
        array_push($errorMsg, 'El comentario debe contener menos de 120 caracteres.');
    }
    if (!preg_match($regex_id, $_REQUEST["deposito"])) {
        array_push($errorMsg, 'Debe seleccionar un deposito.');
    }
    if (!preg_match($regex_id, $_REQUEST["producto"])) {
        array_push($errorMsg, 'Debe seleccionar un producto.');
    }

    return $errorMsg;
}

function guardarReg() {
    global $errsdiv;
    $msj = valida();
    divErr($msj);
    if (strlen(trim($errsdiv)) == 0) {
        $objArt = new stock_manual($_POST["ref_id"], $_POST["fecha"], $_POST["cantidad"], $_POST["comentario"], $_POST["deposito"], $_POST["producto"]);
        if ($objArt->id == 0) {
            insertarReg($objArt);
        } else {
            modificarReg($objArt);
        }
        header("Location: stocks_manuales.php");
    }
}

function insertarReg($obj){
    $sql = "INSERT INTO stock_manual(stman_id, stman_fecha, stman_cantidad, stman_comentario, stman_depo_id, stman_prod_id) ".
           "VALUES (lastid('stock_manual','stman_id'), to_date('{$obj->fecha}','DD/MM/YYYY'), {$obj->cantidad}, '{$obj->comentario}', '{$obj->deposito}', {$obj->producto});";
    $sql .= "INSERT INTO seguridad.log_datos(logd_id, logd_usu_id, logd_tablename, logd_operacion, logd_tableid) ".
            "VALUES (lastid('seguridad.log_datos','logd_id'), ".$_SESSION['usu_id_16856'].", 'stock_manual', 'INSERT', lastid('stock_manual','stman_id')-1);";
    $con = new Conexion;
    $result = $con->retornar($sql);
}

if(isset($_POST["guardarStman"])){
    guardarReg();
}

function modificarReg($obj){
    $sql = "UPDATE stock_manual SET ".
            "stman_fecha=to_date('{$obj->fecha}','DD/MM/YYYY'), stman_cantidad={$obj->cantidad}, stman_comentario='{$obj->comentario}', ".
            "stman_depo_id='{$obj->deposito}', stman_prod_id={$obj->producto} ".
            "WHERE stman_id={$obj->id};";
    $sql .= "INSERT INTO seguridad.log_datos(logd_id, logd_usu_id, logd_tablename, logd_operacion, logd_tableid) ".
            "VALUES (lastid('seguridad.log_datos','logd_id'), ".$_SESSION['usu_id_16856'].", 'stock_manual', 'UPDATE', {$obj->id});";
    $con = new Conexion;
    $result = $con->retornar($sql);
}
?>
<?php


function getSelectedReg() {
    global $REQUEST_ID_;
    $sqlstr = "SELECT stman_id, to_char(stman_fecha, 'DD/MM/YYYY') as stman_fecha, stman_cantidad, stman_comentario, stman_depo_id, stman_prod_id ".
            "FROM stock_manual " .
            "WHERE (stman_id = {$REQUEST_ID_}) ";
    $row = '';
    $conn = new Conexion();
    $consulta = $conn->retornar($sqlstr);
    return $consulta;
}

function divErr($mensajes) {
    global $errsdiv;
    if ((count($mensajes) > 0)) {
        if (trim($mensajes[0]) != '') {
            $errsdiv .= '<div class="err_inputs"><ul>';
            foreach ($mensajes as $keyid => $val) {
                $errsdiv .= '<li>' . $val . '</li>';
            }
            $errsdiv .= '</ul></div>';
        }
    }
}

function listarDepositos($selected) {
    $sqlstr = "SELECT depo_id, depo_nombre FROM deposito ";
    $sqlstr .= " ORDER BY depo_nombre";
    $row = '';
    $conn = new Conexion();
    $consulta = $conn->retornar($sqlstr);
    $js_funcs = "getStock(document.getElementById('producto').value, this.value, document.getElementById('cantidad').value);";
    $row = '<select id="deposito" name="deposito" style="width: 220px" onchange="'. strToShowInHTMLValue($js_funcs).'">';
    $sel = $selected == 0 ? 'selected = "selected"' : '';
    $row .= ' <option value="0" ' . $sel . '><span style="color:#516770; font-style:oblique; font-weight:bold">--Todos--</span></option>';
    while ($reg = pg_fetch_object($consulta)) {
        $sel = $selected == $reg->depo_id ? 'selected = "selected"' : '';
        $row .= ' <option value="' . $reg->depo_id . '" ' . $sel . '>' . $reg->depo_nombre . '</option>';
    }
    $row .='</select>';
    echo $row;
}

function listarProductos($selected) {
    $sqlstr = "SELECT prod_id, prod_nombre, uni_abreviado, prod_codigo FROM producto, unidad WHERE prod_uni_id = uni_id";
    $sqlstr .= " ORDER BY prod_nombre";
    $row = '';
    $conn = new Conexion();
    $consulta = $conn->retornar($sqlstr);
    $js_funcs = "getStock(this.value, document.getElementById('deposito').value, document.getElementById('cantidad').value);";
    $row = '<select id="producto" name="producto" style="width: 320px" onchange="'. strToShowInHTMLValue($js_funcs).'">';
    $sel = $selected == 0 ? 'selected = "selected"' : '';
    $row .= ' <option value="0" ' . $sel . '><span style="color:#516770; font-style:oblique; font-weight:bold">--Todos--</span></option>';
    while ($reg = pg_fetch_object($consulta)) {
        $sel = $selected == $reg->prod_id ? 'selected = "selected"' : '';
        $row .= ' <option value="' . $reg->prod_id . '" ' . $sel . '>'. $reg->prod_nombre . ' '.$reg->uni_abreviado.' (' . $reg->prod_codigo . ')</option>';
    }
    $row .='</select>';
    echo $row;
}
?>
<?php
$regfecha = isset($_POST["fecha"])?$_POST["fecha"]:'';
$regcantidad = isset($_POST["cantidad"])?$_POST["cantidad"]:'0';
$regcomentario = isset($_POST["comentario"])?$_POST["comentario"]:'';
$regdeposito = isset($_POST["deposito"])?$_POST["deposito"]:'0';
$regproducto = isset($_POST["producto"])?$_POST["producto"]:'0';
if($REQUEST_ID_ != '0'){
    $queryObj = getSelectedReg();
    if ($regObj = pg_fetch_object($queryObj)) {
        $regfecha = $regObj->stman_fecha;
        $regcantidad = $regObj->stman_cantidad;
        $regcomentario = strToShowValue($regObj->stman_comentario);
        $regdeposito = strToShowValue($regObj->stman_depo_id);
        $regproducto = $regObj->stman_prod_id;
    }
    $queryObj = null;
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Nueva Modificaci&oacute;n de Stock</title>
        <script type="text/javascript" src="../utilidades.js"></script>
        <script type="text/javascript" src="amstock_manual.js"></script>
        <link href="../css/doc.css" rel="stylesheet" type="text/css"/>
    </head>
    <body>
        <?php //control de acceso
        if(!isset ($_SESSION['usu_rusu_id'])){
            echo '<span style="color:red;">No tiene acceso a esta pantalla.</span>'.
                '</body>';
            die;            
        }
        ?>
        <table class="pageTitle" width="100%">
            <tbody>
                <tr>
                    <td class="title_nm">Modificaci&oacute;n de Stock</td><td class="watermark_right">&nbsp;</td>
                </tr>
            </tbody>
        </table>
        <hr/>
        <div id="div_data_error"><?php echo $errsdiv ?></div>
        <form name="form_stman" id="form_stman" method="post" action="amstock_manual.php" onsubmit="return guardarRegistro()">
            <input type="hidden" name="ref_id" value="<?php echo $REQUEST_ID_ ?>"/>
            <table>
                <tr>
                    <td>Dep&oacute;sito:</td>
                    <td>
                        <?php
                           listarDepositos($regdeposito);
                        ?>
                    </td>
                </tr>
                <tr>
                    <td>Producto:</td>
                    <td>
                        <?php
                           listarProductos($regproducto);
                        ?>
                    </td>
                </tr>
                <tr>
                    <td>Cantidad:</td><td><input type="text" id="cantidad" name="cantidad" value="<?php echo $regcantidad?>" size="12" maxlength="8" onkeypress="return isNumeric(event);" onblur="getStock(document.getElementById('producto').value, document.getElementById('deposito').value, this.value)"/></td>
                </tr>
                <tr>
                    <td>Comentario:</td><td><input type="text" name="comentario" value="<?php echo $regcomentario?>" size="40" maxlength="120"/></td>
                </tr>
                <tr>
                    <td>Fecha:</td>
                    <td>
                        <?php
                        include_once 'complements/date_picker/date_picker.php';
                        getDatePicker('complements/date_picker/', 'fecha');
                        ?>
                        <script type="text/javascript">
                            document.getElementById('fecha').value='<?php echo $regfecha?>';                                                    
                        </script>
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center"><input type="submit" name="guardarStman" value="Guardar"/>
                        <input type="button" name="cancelar" value="Cancelar" onclick="self.location='stocks_manuales.php';"/></td>
                </tr>
            </table>
        </form>
    </body>
</html>
